NFT Minting এবং ERC-721 Contract Deployment করতে হলে Solidity স্মার্ট কন্ট্রাক্ট ডেভেলপমেন্ট, Ethereum নেটওয়ার্কে কন্ট্রাক্ট ডেপ্লয়মেন্ট, এবং NFT ম্যানেজমেন্ট প্রক্রিয়া সম্পর্কে ধারণা থাকা প্রয়োজন। নিচে একটি ERC-721 (NFT) কন্ট্রাক্ট তৈরির এবং NFT মিন্টিং করার প্রক্রিয়া নিয়ে বিস্তারিত আলোচনা করা হলো।
ERC-721 হলো Ethereum-এর একটি NFT স্ট্যান্ডার্ড, যা ইউনিক এবং Non-Fungible টোকেন তৈরি করতে ব্যবহৃত হয়। ERC-721 কন্ট্রাক্টের মাধ্যমে আপনি ইউনিক অ্যাসেট, ডিজিটাল আর্টওয়ার্ক, এবং অন্যান্য ক্লেক্টিবলস ব্লকচেইনে মুদ্রণ করতে পারেন।
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyNFT is ERC721, Ownable {
uint256 public tokenCounter;
constructor() ERC721("MyNFT", "MNFT") {
tokenCounter = 0;
}
function mintNFT(address recipient, string memory tokenURI) public onlyOwner returns (uint256) {
uint256 newTokenId = tokenCounter;
_safeMint(recipient, newTokenId);
_setTokenURI(newTokenId, tokenURI);
tokenCounter += 1;
return newTokenId;
}
function _baseURI() internal view virtual override returns (string memory) {
return "https://api.example.com/metadata/";
}
}
ERC-721 এবং Ownable:
Ownable
মোডিফায়ার কন্ট্রাক্টের মালিক নির্ধারণ করে এবং শুধুমাত্র মালিককে NFT মিন্ট করার অনুমতি দেয়।mintNFT ফাংশন:
mintNFT
ফাংশনটি নতুন NFT টোকেন মিন্ট করে এবং সেটি একটি নির্দিষ্ট অ্যাড্রেসে প্রেরণ করে।tokenURI
সংযুক্ত করা হয়, যা NFT-এর মেটাডেটা নির্দেশ করে (যেমন ছবির লিংক, নাম, বিবরণ)।১. Remix IDE ওপেন করুন।
২. নতুন একটি ফাইল তৈরি করুন, MyNFT.sol
নামে এবং উপরের কোডটি পেস্ট করুন।
৩. Solidity Compiler ট্যাবে যান এবং কন্ট্রাক্টটি কম্পাইল করুন।
৪. Deploy & Run Transactions ট্যাবে যান এবং Injected Web3 নির্বাচন করুন (MetaMask ব্রাউজার এক্সটেনশনটি ব্যবহার করে)।
৫. ডেপ্লয় বাটনে ক্লিক করে কন্ট্রাক্টটি Ethereum নেটওয়ার্কে ডেপ্লয় করুন।
নোট: আপনি ডেভেলপমেন্ট নেটওয়ার্ক (যেমন Ropsten বা Rinkeby) ব্যবহার করতে পারেন পরীক্ষার জন্য, কারণ এটি গ্যাস ফি ছাড়াই কাজ করতে সহায়ক।
এখন আমরা আমাদের কন্ট্রাক্টের মাধ্যমে একটি NFT মিন্ট করবো। Remix IDE-তে mintNFT
ফাংশন কল করে এটি করা যাবে।
১. Deployed Contracts সেকশনে আপনার ডেপ্লয় করা কন্ট্রাক্টটি দেখুন।
২. mintNFT
ফাংশন নির্বাচন করুন এবং প্রয়োজনীয় ইনপুট প্রদান করুন:
"https://api.example.com/metadata/1.json"
)।প্রত্যেকটি NFT-এর জন্য একটি ইউনিক tokenURI সেট করা হয়, যা NFT-এর মেটাডেটা নির্দেশ করে। মেটাডেটা সাধারণত JSON ফরম্যাটে থাকে এবং এটি NFT-এর ছবির লিংক, নাম, এবং অন্যান্য বিবরণ নির্দেশ করে।
{
"name": "My First NFT",
"description": "This is my first NFT on the blockchain!",
"image": "https://api.example.com/images/1.png",
"attributes": [
{
"trait_type": "Background",
"value": "Blue"
},
{
"trait_type": "Rarity",
"value": "Common"
}
]
}
এই JSON ফাইলটি হোস্ট করতে আপনি IPFS (InterPlanetary File System) বা অন্য কোনো হোস্টিং সার্ভিস ব্যবহার করতে পারেন। JSON ফাইলটি হোস্ট করার পর তার URI (যেমন "https://ipfs.io/ipfs/Qm12345"
) tokenURI
হিসেবে ব্যবহার করা হবে।
NFT মিন্টিং করার পর আপনি একটি ফ্রন্ট-এন্ড ইন্টারফেস তৈরি করতে পারেন, যেখানে ব্যবহারকারীরা তাদের NFT দেখতে এবং ম্যানেজ করতে পারবে। React.js এবং Ethers.js ব্যবহার করে আপনি একটি সম্পূর্ণ dApp তৈরি করতে পারেন।
NFT মিন্টিং এবং ERC-721 কন্ট্রাক্ট ডেপ্লয়মেন্ট একটি অত্যন্ত কার্যকরী প্রক্রিয়া, যা আপনাকে NFT ইকোসিস্টেমের মধ্যে কাজ করার সুযোগ দেয়। Solidity, Remix IDE, এবং MetaMask-এর সাহায্যে আপনি দ্রুত NFT কন্ট্রাক্ট তৈরি এবং ডেপ্লয় করতে পারবেন। আপনার জ্ঞান এবং দক্ষতা বাড়ানোর জন্য আপনি আরও জটিল ফিচার (যেমন রয়্যালটি পেমেন্ট, অটোমেটিক মার্কেটপ্লেস ইন্টিগ্রেশন) যুক্ত করতে পারেন।
আরও দেখুন...